home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 4_2005-2006.ISO / data / Zips / Zelda_Styl1887615122005.psc / THE CURRENT RPG DX / DInput.bas < prev    next >
BASIC Source File  |  2005-04-20  |  5KB  |  183 lines

  1. Attribute VB_Name = "DInput"
  2. '**************************************************************
  3. '
  4. ' THIS WORK, INCLUDING THE SOURCE CODE, DOCUMENTATION
  5. ' AND RELATED MEDIA AND DATA, IS PLACED INTO THE PUBLIC DOMAIN.
  6. '
  7. ' THE ORIGINAL AUTHOR IS RYAN CLARK.
  8. '
  9. ' THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY
  10. ' OF ANY KIND, NOT EVEN THE IMPLIED WARRANTY OF
  11. ' MERCHANTABILITY. THE AUTHOR OF THIS SOFTWARE,
  12. ' ASSUMES _NO_ RESPONSIBILITY FOR ANY CONSEQUENCE
  13. ' RESULTING FROM THE USE, MODIFICATION, OR
  14. ' REDISTRIBUTION OF THIS SOFTWARE.
  15. '
  16. '**************************************************************
  17. '
  18. ' This file was downloaded from The Game Programming Wiki.
  19. ' Come and visit us at http://gpwiki.org
  20. '
  21. '**************************************************************
  22. '
  23. 'IMPORTANT TO NOTE:
  24. '
  25. 'When using resource files and the CreateSurfaceFromResource
  26. 'command in DirectX 7.0, you will not be able to run your program
  27. 'by simply pressing F5 or selecting the run menu item, you will
  28. 'get an error. dX7 will only recognize your resource file if you
  29. 'compile your program and RUN THE COMPILED VERSION.
  30. '
  31. '**************************************************************
  32.  
  33. 'dX Variables
  34. Dim dx As New DirectX7
  35. Dim di As DirectInput
  36. Dim diDEV As DirectInputDevice
  37. Dim diState As DIKEYBOARDSTATE
  38.  
  39. 'Loop counter
  40. Dim i As Integer
  41.  
  42. 'Public array showing which keys are active
  43. Public aKeys(211) As Boolean
  44.  
  45. 'Keycode constants
  46. Global Const DIK_ESCAPE = 1
  47. Global Const DIK_1 = 2
  48. Global Const DIK_2 = 3
  49. Global Const DIK_3 = 4
  50. Global Const DIK_4 = 5
  51. Global Const DIK_5 = 6
  52. Global Const DIK_6 = 7
  53. Global Const DIK_7 = 8
  54. Global Const DIK_8 = 9
  55. Global Const DIK_9 = 10
  56. Global Const DIK_0 = 11
  57. Global Const DIK_MINUS = 12
  58. Global Const DIK_EQUALS = 13
  59. Global Const DIK_BACKSPACE = 14
  60. Global Const DIK_TAB = 15
  61. Global Const DIK_Q = 16
  62. Global Const DIK_W = 17
  63. Global Const DIK_E = 18
  64. Global Const DIK_R = 19
  65. Global Const DIK_T = 20
  66. Global Const DIK_Y = 21
  67. Global Const DIK_U = 22
  68. Global Const DIK_I = 23
  69. Global Const DIK_O = 24
  70. Global Const DIK_P = 25
  71. Global Const DIK_LBRACKET = 26
  72. Global Const DIK_RBRACKET = 27
  73. Global Const DIK_RETURN = 28
  74. Global Const DIK_LCONTROL = 29
  75. Global Const DIK_A = 30
  76. Global Const DIK_S = 31
  77. Global Const DIK_D = 32
  78. Global Const DIK_F = 33
  79. Global Const DIK_G = 34
  80. Global Const DIK_H = 35
  81. Global Const DIK_J = 36
  82. Global Const DIK_K = 37
  83. Global Const DIK_L = 38
  84. Global Const DIK_SEMICOLON = 39
  85. Global Const DIK_APOSTROPHE = 40
  86. Global Const DIK_GRAVE = 41
  87. Global Const DIK_LSHIFT = 42
  88. Global Const DIK_BACKSLASH = 43
  89. Global Const DIK_Z = 44
  90. Global Const DIK_X = 45
  91. Global Const DIK_C = 46
  92. Global Const DIK_V = 47
  93. Global Const DIK_B = 48
  94. Global Const DIK_N = 49
  95. Global Const DIK_M = 50
  96. Global Const DIK_COMMA = 51
  97. Global Const DIK_PERIOD = 52
  98. Global Const DIK_SLASH = 53
  99. Global Const DIK_RSHIFT = 54
  100. Global Const DIK_MULTIPLY = 55
  101. Global Const DIK_LALT = 56
  102. Global Const DIK_SPACE = 57
  103. Global Const DIK_CAPSLOCK = 58
  104. Global Const DIK_F1 = 59
  105. Global Const DIK_F2 = 60
  106. Global Const DIK_F3 = 61
  107. Global Const DIK_F4 = 62
  108. Global Const DIK_F5 = 63
  109. Global Const DIK_F6 = 64
  110. Global Const DIK_F7 = 65
  111. Global Const DIK_F8 = 66
  112. Global Const DIK_F9 = 67
  113. Global Const DIK_F10 = 68
  114. Global Const DIK_NUMLOCK = 69
  115. Global Const DIK_SCROLL = 70
  116. Global Const DIK_NUMPAD7 = 71
  117. Global Const DIK_NUMPAD8 = 72
  118. Global Const DIK_NUMPAD9 = 73
  119. Global Const DIK_SUBTRACT = 74
  120. Global Const DIK_NUMPAD4 = 75
  121. Global Const DIK_NUMPAD5 = 76
  122. Global Const DIK_NUMPAD6 = 77
  123. Global Const DIK_ADD = 78
  124. Global Const DIK_NUMPAD1 = 79
  125. Global Const DIK_NUMPAD2 = 80
  126. Global Const DIK_NUMPAD3 = 81
  127. Global Const DIK_NUMPAD0 = 82
  128. Global Const DIK_DECIMAL = 83
  129. Global Const DIK_F11 = 87
  130. Global Const DIK_F12 = 88
  131. Global Const DIK_NUMPADENTER = 156
  132. Global Const DIK_RCONTROL = 157
  133. Global Const DIK_DIVIDE = 181
  134. Global Const DIK_RALT = 184
  135. Global Const DIK_HOME = 199
  136. Global Const DIK_UP = 200
  137. Global Const DIK_PAGEUP = 201
  138. Global Const DIK_LEFT = 203
  139. Global Const DIK_RIGHT = 205
  140. Global Const DIK_END = 207
  141. Global Const DIK_DOWN = 208
  142. Global Const DIK_PAGEDOWN = 209
  143. Global Const DIK_INSERT = 210
  144. Global Const DIK_DELETE = 211
  145.  
  146. Public Sub Initialize()
  147.  
  148.     'Create the direct input object
  149.     Set di = dx.DirectInputCreate()
  150.         
  151.     'Aquire the keyboard as the device
  152.     Set diDEV = di.CreateDevice("GUID_SysKeyboard")
  153.     
  154.     'Get input nonexclusively, only when in foreground mode
  155.     diDEV.SetCommonDataFormat DIFORMAT_KEYBOARD
  156.     diDEV.SetCooperativeLevel frmMain.hWnd, DISCL_BACKGROUND Or DISCL_NONEXCLUSIVE
  157.     diDEV.Acquire
  158.     
  159. End Sub
  160.  
  161. Public Sub CheckKeys()
  162.     
  163.     'Get the current state of the keyboard
  164.     diDEV.GetDeviceStateKeyboard diState
  165.     
  166.     'Scan through all the keys to check which are depressed
  167.     For i = 1 To 211
  168.         If diState.Key(i) <> 0 Then
  169.             aKeys(i) = True             'If the key is pressed, set the appropriate array index to true
  170.         Else
  171.             aKeys(i) = False            'If the key is not pressed, set the appropriate array index to false
  172.         End If
  173.     Next
  174.     
  175. End Sub
  176.  
  177. Public Sub Terminate()
  178.     
  179.     'Unaquire the keyboard when we quit
  180.     diDEV.Unacquire
  181.     
  182. End Sub
  183.